pub fn convert_base(num_str: &str, to_base: u32) -> String {
    // TODO: 这里写逻辑
    let str = num_str.chars().collect::<Vec<_>>();
    let mut base = 0;
    let mut idx = 0;
    for (i, c) in str.iter().enumerate() {
        if *c == '(' {
            idx = i;
            break;
        }
    }
    let mut b= 1;
    for i in (idx+1..str.len()-1).rev() {
        base = (str[i] as u32 - '0' as u32) * b + base;
        b *= 10;
    }
    let mut x = 0;
    b = 1;
    for i in (0..idx).rev() {
        x = (str[i] as u32 - '0' as u32) * b + x;
        b *= base;
    }
    let mut res = String::new();
    b = to_base;
    while x > 0 {
        let d = x % b;
        if d < 10 {
            res.push((d + '0' as u32) as u8 as char);
        } else {
            res.push((d - 10 + 'a' as u32) as u8 as char);
        }
        x /= b;
        b *= to_base;
    }
    res.chars().rev().collect()
}
